// IPAddrConverter.cpp: implementation of the IPAddrConverter class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "IPAddrConverter.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

IPAddrConverter::IPAddrConverter()
{
}

IPAddrConverter::~IPAddrConverter()
{
}

bool IPAddrConverter::IsValidString(const CString& strIPAddr)
{
	return inet_addr(strIPAddr) != INADDR_NONE;
}

CString IPAddrConverter::FormatString(const CString& strIPAddr)
{
	DWORD dwIPAddr = inet_addr(strIPAddr);
	return inet_ntoa(*(IN_ADDR *)&dwIPAddr);
}

DWORD IPAddrConverter::String2DWord(const CString& strIPAddr)
{
	return inet_addr(strIPAddr);
}

DWORD IPAddrConverter::Struct2DWord(const IN_ADDR& in_addr)
{
	return *(DWORD *)&in_addr;
}

CString IPAddrConverter::DWord2String(DWORD dwIPAddr)
{
	return inet_ntoa(*(IN_ADDR *)&dwIPAddr);
}

CString IPAddrConverter::Struct2String(const IN_ADDR& in_addr)
{
	return inet_ntoa(in_addr);
}

IN_ADDR IPAddrConverter::DWord2Struct(DWORD dwIPAddr)
{
	return *(IN_ADDR *)&dwIPAddr;
}

IN_ADDR IPAddrConverter::String2Struct(const CString& strIPAddr)
{
	DWORD dwIPAddr = inet_addr(strIPAddr);
	return *(IN_ADDR *)&dwIPAddr;
}